// 这个文件主要是为了学习String这个struct
pub fn main() {
    //  首先可以使用new函数实例化一个Strin对象
    let s=String::new();
    // 同样，如果没有课修改描述，是不能修改添加数据
    let mut s1 = s;
    s1.push_str("abc");
    println!("{}", s1);
    
    //下面写一个函数 ，
}

fn three_vowels(word:&str) {
    let mut vowel_count:i8 = 0;

    word.chars();
    
}

pub struct User;

pub struct Role;

impl User {
    pub fn get_role() -> Role {
        Role{}
    }
}

impl Role {
    pub fn get_name(&self) -> &'static str {
        "abc"
    }
}

#[cfg(test)]
mod test {

    #[test]
    fn test() {
        let mut s: String = "abcdefg".to_owned();
        if let Some(first_char) = s.chars().next() {
            let first = first_char.to_uppercase().to_string(); // 转换为大写并转为字符串
            let rest = s.drain(1..).collect::<String>(); // 获取剩余字符
            s = format!("{}{}", first, rest); // 拼接
        }
       
        println!("{}", s);
    }

}